package sistema.controleVendas.controladores;

import java.util.List;

import sistema.controleVendas.entidades.Estado;
import sistema.controleVendas.entidades.Interesse;
import sistema.controleVendas.entidades.Pessoa;
import sistema.controleVendas.entidades.PessoaFisica;
import sistema.controleVendas.entidades.PessoaJuridica;
import sistema.controleVendas.entidades.TipoContato;

import sistema.controleVendas.fachadas.GerenciarClientesFachada;
import sistema.controleVendas.fachadas.GerenciarEstadoFachada;
import sistema.controleVendas.fachadas.GerenciarInteresseFachada;
import sistema.controleVendas.fachadas.GerenciarPessoaFachada;
import sistema.controleVendas.fachadas.GerenciarTipoContatoFachada;

public class GerenciarClientes {
	public GerenciarClientes(){}

	public void adicionarCliente(Pessoa pessoa){
		pessoa.setInteresse(GerenciarInteresseFachada.getInstance().buscaInteresse(pessoa.getInteresse()));
		GerenciarClientesFachada.getInstance().inserirPessoa(pessoa);
	}

	public List<PessoaFisica> listarClientes(){
		return GerenciarClientesFachada.getInstance().listarPessoas();

	}

	public void removerCliente(Pessoa pessoa){
		GerenciarClientesFachada.getInstance().removerCliente(pessoa);
	}

	public PessoaFisica buscarCliente(String atributo, String valor){
		return GerenciarClientesFachada.getInstance().buscarCliente(valor, atributo);
	}

	public List<Estado> listarEstados(){
		return GerenciarEstadoFachada.getInstance().listarEstados();
	}

	public List<Interesse> listarInteresses(){
		return GerenciarInteresseFachada.getInstance().listarInteresses();
	}

	public List<PessoaFisica> buscarPessoas(String campo, String valor, Interesse interesse){
		return GerenciarPessoaFachada.getInstance().buscarPessoas(campo, valor, interesse);
	}

	public List<PessoaFisica> buscarPessoas(Interesse interesse){
		return GerenciarPessoaFachada.getInstance().buscarPessoas(interesse);
	}

	public void removerPessoaId(int id){
		GerenciarPessoaFachada.getInstance().removerPessoa(buscarPessoaId(id));
	}

	public PessoaFisica buscarPessoaId(int id){
		return GerenciarPessoaFachada.getInstance().buscarPessoaId(id);
	}


	// Pessoa Juridica
	
	public List<PessoaJuridica> listarClientesJ(){
		return GerenciarClientesFachada.getInstance().listarPessoasJ();
		
	}
	
	public PessoaJuridica buscarPessoaJuridicaId(int id){
		return GerenciarPessoaFachada.getInstance().buscarPessoaJuridicaId(id);
	}

	public List<PessoaJuridica> buscarPessoasJuridica(String campo, String valor, Interesse interesse){
		return GerenciarPessoaFachada.getInstance().buscarPessoasJuridica(campo, valor, interesse);
	}
	
	public TipoContato buscarTipoContato(String tContato){
		return GerenciarTipoContatoFachada.getInstance().buscarTipoContato(tContato);
	}
}
